#pragma once

#include <list>

//////////////////////////////////////////////////
//SceneLeaf
//////////////////////////////////////////////////

class BoundingBox;
class Face;

class SceneLeaf
  {
  public:
    SceneLeaf(BoundingBox* i_bouding_box);
    ~SceneLeaf(void);

  private:
    std::list<SceneLeaf*>* m_children;
    std::list<Face*>* m_data_faces;
    BoundingBox* m_bounding_box;    

  public:
    void AddChild(SceneLeaf* i_child);
    void AddDataFace(Face* i_face);    
    std::list<SceneLeaf*>* GetChildren() const;
    std::list<Face*>* GetDataFaces() const;
    BoundingBox* GetBoundingBox() const;
  };

//////////////////////////////////////////////////